home *** CD-ROM | disk | FTP | other *** search
- /*
- File: SoundClass.cp
-
- Contains: TSound is a simple object that plays sounds
- TSound.cp contains the TSound member functions.
-
- Written by: Kent Sandvik
-
- Copyright: Copyright © 1992-1999 by Apple Computer, Inc., All Rights Reserved.
-
- You may incorporate this Apple sample source code into your program(s) without
- restriction. This Apple sample source code has been provided "AS IS" and the
- responsibility for its operation is yours. You are not permitted to redistribute
- this Apple sample source code as "Apple sample source code" after having made
- changes. If you're going to re-distribute the source, we require that you make
- it clear in the source that the code was descended from Apple sample source
- code, but that you've made changes.
-
- Change History (most recent first):
- 8/18/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1
-
-
- */
- #ifndef _SOUND_
- #include "SoundClass.h"
- #endif
-
-
- // CONSTRUCTORS AND DESTRUCTORS
- #pragma segment Sound
- TSound::TSound(char* name)
- // Construct the TSound class using the string name for the sound resource.
- {
- strcpy(fSound, name);
- c2p(fSound); // convert it to a Pascal string
-
- fSoundHandle = ::GetNamedResource(kSoundType, (ConstStr255Param)fSound);// get the resource
- ASSERT(fSoundHandle != NULL, "\pDidn't find the Sound Resource");
- if (fSoundHandle != NULL)
- ::DetachResource(fSoundHandle); // detach it so we could have multiple copies in memory
- }
-
-
- TSound::TSound(short resID)
- // Construct the TSound class using a resource ID.
- {
- fSoundID = resID;
- fSoundHandle = ::GetResource(kSoundType, fSoundID);
- ASSERT(fSoundHandle != NULL, "\pDidn't find the Sound Resource");
- if (fSoundHandle != NULL)
- ::DetachResource(fSoundHandle); // detach it so we could have multiple copies in memory
- }
-
-
- #pragma segment Sound
- TSound::~TSound()
- // Destruct the sound handle.
- {
- if (fSoundHandle != NULL) // we have a valid snd handle
- {
- ::DisposeHandle(fSoundHandle);
- }
- }
-
-
- // MAIN INTERFACE
- #pragma segment Sound
- void TSound::Play()
- // Play the selected sound.
- {
- if (fSoundHandle != NULL) // we have a valid snd handle
- {
- fError = ::SndPlay(NULL, (SndListHandle)fSoundHandle, false);// play synchronously
- VASSERT(fError == noErr, ("Problems with SndPlay = %d\n", fError));
- }
- }
-
-
- // _________________________________________________________________________________________________________ //
-
-
- /* Change History (most recent last):
- No Init. Date Comment
- 1 khs 12/21/92 New file
- 2 khs 1/14/93 Cleanup
- */
-